// import vue from 'vue'
import toastComponent from './index.vue'
const toastRegistry = {
  // vue公开的某个注册的方法(写插件必备),可以不用引入Vue只要在插件外部引用Vue,并且使用Vue.use后即可引入可使用vue对象
  install: function(Vue, options) {
    console.log(options) //options 是Vue.use()传值进来的
    //使用vue的extend，以vue文件为基础组件，返回一个可以创建vue组件的特殊构造函数
    const ToastConstructor = Vue.extend(toastComponent)
    //构造函数
    function showToast(text, duration = 2000) {
      //在这里只能用function 不能使用 箭头函数 //实例化一个ToastConstructor
      const toastDom = new ToastConstructor({
        //创建个vue 示例
        el: document.createElement('div'), //根节点
        data() {
          return {
            text: text,
            show: true
          }
        }
      })
      //在body中动态创建一个div元素，后面自动会把它替换成整个vue文件内的内容
      document.body.appendChild(toastDom.$el)
      setTimeout(() => {
        toastDom.show = false
      }, duration)
    }
    //把showToast这个方法添加到uve的原型中，可以直接调用，当调用的时候就是执行函数内的内容
    Vue.prototype.$toast = showToast //使用原型链的方式   后面就可以用 Vue.use() 注册使用
  } //'component-name'这就是后面可以使用的组件的名字，install是默认的一个方法
}
export default toastRegistry
